#ifndef __PERSONAGEM_H__
#define __PERSONAGEM_H__

#include <c2d2/ator.h>
#include <c2d2/atorlua.h>
#include <c2d2/chien2d2mapa.h>
#include <c2d2/chien2d2.h>

class Personagem {

private:
	int id;
	
	Animacao *animacoes;
	int qtde_animacoes;
	int largura_tela;
	int altura_tela;
	int boxX, boxY, boxWidth, boxHeight;
	int spriteWidth, spriteHeight;
	char name[32];
	lua_State *estado_lua;
	char *arquivo_lua[32];

public:
	Personagem(int qtde_animacoes, int largura_tela, int altura_tela);
	~Personagem();

	Ator *ator;

	void adicionarAnimacao(int indice, int qtde_quadros, int tempo_quadros, int quadros[]);

	void iniciar(int id, char *arquivo_lua, bool (*funcao)(Ator *, unsigned int), double x, double y);

	void desenhar(unsigned int mapa, unsigned int xtela, unsigned int ytela);

	void atualizar(unsigned int mapa);

	void aplicar_estado(unsigned int mapa);

	void enviar_evento(Evento *ev);

	int getPosX();

	int getPosY();

	int getWidth();

	int getHeight();

	int getScreenPosX(unsigned int mapa);

	int getScreenPosY(unsigned int mapa);

	unsigned int getEstado();

	bool checkBlockCollision(unsigned int mapa, unsigned int codBloco);

	void centerMap(unsigned int mapa);

	bool shooted(Ator *mira);

	int damaged(int damage);

	void nameUpdate(unsigned int mapa);

	int getLifes();

	double getDoubleLuaValue(char *value);
};


#endif
